# JavaScript Immutable ( 不可變 ) 概念


參考文章 MDN

也就是除了物件部分陣列以外,其餘的型別都是不可變的。
例如 : 變數 a 一開始是 'hello',再設定一個 a 為 'yo',其實是再新增一個記憶體存放的,所以兩個位置不同,因此顯示 a 還是原本的'hello'

如果改成a = a + 'yo' 會變成 'helloyo' 因為重新設了一個新值讓'hello'+'yo'的值回傳。

重點

陣列部分 :

通常如果是改動陣列,且回傳的也是陣列 ( push,splice,reverse ) 就會改到原本陣列。

如果回傳的不是陣列 ( join,slice,toUpperCase )就不會影響原陣列,他們會回傳一個新陣列來儲存,因此需要用一個新的變數會函式來接收 str = str.toUpperCase(),由於是重要的概念,在這邊簡單筆記一下。







你可能感興趣的文章

連接RabbitMQ的AMQP時碰到The protocol requested by peer '0 0 9 1' does not match expected '3 1 0 0之原因與解法

連接RabbitMQ的AMQP時碰到The protocol requested by peer '0 0 9 1' does not match expected '3 1 0 0之原因與解法

Day05 間接層 (indirection)

Day05 間接層 (indirection)

【 JS筆記 】 e.target 與 e.currentTarget 的差別

【 JS筆記 】 e.target 與 e.currentTarget 的差別






留言討論